package com.cskaoyan.javase.array._5operation._2get;

/**
 * 获取数组中的最值
 * 思路:
 *      先假设某个元素是最值(第一个),然后逐一遍历数组中的元素
 *      逐一比较,最终找出最值
 *      这种方法显然是比较笨的,效率不高的
 *      利用计算机的庞大算力,采取野蛮的方式进行计算(典型的就是递归)
 *
 * @since 09:52
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        int[] arr = {1, 21, 312, 3, 21, 3, 123, 12, 3, 1, 1, -21, 31, 23, 12, 3};
        System.out.println(getMaxValue(arr));
        System.out.println(getMinValue(arr));
    }

    // 求最大值
    public static int getMaxValue(int[] arr) {
        // 1.假设第一个元素是最大值
        int max = arr[0];
        // 2.遍历数组,逐一比较
        for (int ele : arr) {
            // if判断
            if (ele > max) {
                // 成为新的最大值
                max = ele;
            }
        }
        // 3.返回最大值
        return max;
    }

    // 求最小值
    public static int getMinValue(int[] arr) {
        // 1.假设第一个元素是最小值
        int min = arr[0];
        // 2.遍历数组,逐一比较
        for (int i = 1; i < arr.length; i++) {
            if (arr[i] < min) {
                min = arr[i];
            }
        }
        // 3.返回最小值
        return min;
    }
}
